#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <stdint.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <stdbool.h>
#include <errno.h>
#include <string.h>
#include <signal.h>
#include <dlfcn.h>
#include <pthread.h>
#include <linux/fb.h>

int main(int argc, char const *argv[])
{
    // 1, 创建具名管道
    mkfifo("./myfifo", 0666);

    // 2，打开管道
    int fd1 = open("./myfifo1", O_RDWR|O_TRUNC);
    int fd2 = open("./myfifo2", O_RDWR|O_TRUNC);
    // if(fd == -1)
    // {
    //     perror("打开管道失败");
    //     exit(0);
    // }
    pid_t id=fork();
    // 3，从管道读出数据
    char buf[20];
    if (id > 0)
    {
        while (1)
        {
            bzero(buf, 20);
            fgets(buf, 20, stdin);
            write(fd2, buf, strlen(buf));
        }
    }
    if (id == 0)
    {
        while (1)
        {
            bzero(buf,20);
            read(fd1, buf, sizeof(buf)); // 阻塞等待
            printf("%s", buf);
        }
    }

    return 0;
}
